廢話不多說~直接進入正題
變數(Variable)
變數就像一個箱子,拿來裝資料,且所有變數都只能出現一次,不可取一樣名字,也不可重複宣告。
在程式語言中的 =
,是賦予值的意思,將等號右邊的值放入左邊,例如:
let num = 2;
console.log(num); // 2
表示將 2 賦予給 num 這個變數,則 num = 2。
基本資料型態(Primitive Data Types)
在 JavaScript 中最基本的資料儲存方式有 7 種,包括 Number、BigInt、String、Boolean、Undefined、Null、Symbol,其他的資料型態都是由這幾種組合而成,只要是這幾個以外的資料型態,都不是 JavaScript 原始的,例如:Array、Object...等,而 Array、Function 又屬於 Object(這邊先不多說,之後的文章會來深入探討 Object)。
數字,且介於 -(2**53 -1)
~ 2**53 -1
之間,用來建立物件的數值,也可以用來轉換型別,並且包含許多方法,例如:toFixed()
、toString()
等。
Number 除了能代表浮點數以外,還有三個 symbolic value:+Infinity(正無限大)、-Infinity(負無限大)、NaN(Not A Number)。
toString()
為數字轉字串的方法,這個方法只能在 Number 用。let age = 25;
console.log(age+10); // 35
console.log(age.toString()+10); // 2510
toFixed()
為設定小數點要幾位數。let pi = 3.141592;
console.log(pi.toFixed(5)) // 3.14159
console.log(pi.toFixed(2)) // 3.14
Number.isNaN()
可以用來判斷傳入的值是否為 NaN,如果參數沒辦法被轉換成數字,會回傳 NaN,例如:輸入的內容是 String 時就無法轉換為 Number,結果會顯示 NaN。let example = "a" + 3;
console.log(typeof example); // string
isNaN(example); // true
補充:
NaN 的資料型別是 Number
Infinity 的資料型別也是 Numberconsole.log(Infinity/Infinity); // NaN console.log(Infinity/0); // Infinity console.log(0/0); // NaN
在微積分裡不定形有 6 種,如果在 JavaScript 裡就會得到 NaN
就是因為 NaN 包含太多種不定形的可能性,用 NaN 去確認他們的值的話永遠不會相等,所以不能用數值去和 NaN 比較,且 NaN 永遠都不會等於 NaN,因此我們想確認一個值是不是 NaN 時只能用isNaN()
這個方法。let result = 0/0; console.log(result); // NaN console.log(result == NaN); // false console.log(result === NaN); // false
不管用什麼來跟 isNaN() 比較,都會 return false
let result = 0/0; console.log(isNaN(result)); // true
所以只能在 isNaN() 裡面放入要比較的東西
大於 2**53 -1
的整數,使用方式為在後面加一個 n,或是利用 BigInt()
將 Number 轉為 BigInt。
console.log(BigInt(123) === 123n); // true
console.log(typeof 123); // number
console.log(typeof 123n); // bigint
字串,放在雙引號 "" 或單引號 ' ' 裡面,String 有許多方法及屬性。
toLowerCase()
:把字串全部換成小寫;toUpperCase()
:把字串全部換成大寫。let name = "Mary";
console.log(name.toLowerCase()); // mary
let name = "john";
console.log(name.toUpperCase()); // JOHN
split()
:分割let sentence = "I am rich";
console.log(sentence.split(" "));
//["I","am","rich"]
無切割空白
let sentence = "I am rich";
console.log(sentence.split(""));
// ["I","a","m","r","i","c","h"]
indexOf()
找某個元素的索引值let name = "MongoDB";
console.log(name.indexOf('D')) // 5
也可以找某個元素的片段的索引值,結果會顯示那個片段開始的索引位置
let name = "MangoDataBase";
console.log(name.indexOf('Data')) // 5
// 意思為 Data 這個片段從索引位置 5 的地方開始
如果尋找的東西字串裡根本沒有,則會出現索引位置為 -1。
let name = "Mary";
console.log(name.indexOf("m")); // -1
// 因為 name 裡根本沒有小寫的 m
布林值,用來判斷 true(真)或 false(偽)。
console.log(10 > 9); // true
console.log(3 < 1); // false
補充:
除了下列幾種是 Falsy Values,其他都是 Truthy Values,負數也是 Truthy Value!
表示未被定義,例如一個變數宣告了卻沒有賦予值給它,則會出現 undefined。
let x;
console.log(x); // undefined
被定義沒有任何東西(空值),要特別注意的是 null 的 type 是 object。
let x = null;
console.log(x); // null
console.log(typeof x); // object
Symbol 為一個 function,可以用來創建獨一無二的值。
let x = Symbol();
console.log(typeof x); // symbol
參考資料:
MDN - JavaScript data types and data structures